package com.ychen.ruijee.config;

import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author ychen@gotop.cn
 * @date 2024-05-30 0:20
 */

/**
 * MP 分页查询插件
 * spring应用程序启动时 他会扫描 被 @Configuration 注解标记的类 并处理 这些类中的 @Bean注解方法
 * bean初始化 Spring 调用 mybatisPlusInterceptor 方法 将返回得 MybatisPlusInterceptor 实例注册为 一个 bean
 * bean注入  任何需要使用 MybatisPlusInterceptor 的 Spring 组件都可以 通过依赖注入(例如 @Resource @Autowired)
 */
@Configuration
public class MybatisPlusConfig {

    /**
     * bean 注解 告诉 spring 框架 这个方法MybatisPlusInterceptor 返回一个对象 该对象员工被 注册为 spring 应用程序上下文中的一个bean
     * m每次 调用这个方法的时候 Spring 都会管理和控制返回bean
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
        return interceptor;
    }
}
